package cn.com.pkas.service.impl
{
	import cn.com.pkas.bean.Body;
	import cn.com.pkas.bean.Header;
	import cn.com.pkas.bean.Message;
	import cn.com.pkas.comm.Const;
	import cn.com.pkas.service.FormatMSG;
	
	import mx.utils.StringUtil;
	
	public class FormatMSGImpl implements FormatMSG
	{
		public function FormatMSGImpl()
		{
		}
		/**把msg=》字符串**/
		public function format(msg:Message):String{
		
			var ret:String = "";
			
			ret = msg.header.tekey+msg.body.bodyLength+msg.body.bodyEncr+msg.body.bodyType+msg.body.bodySource+msg.body.blank+msg.body.body
//			Alert.show(ret);
			
			return StringUtil.trim(ret);
		}
		
		/**把字符串解析成msg对象**/
		/**未做异常处理,未做安全性判断**/
		public function parse(msg:String):Message{
			//头
			var h:int = msg.substring(0,Const.HEADERLENGTH) as int;	
			//报文长度
			var bl:String = msg.substring(Const.HEADERLENGTH,Const.HEADERLENGTH+Const.BODYLENGTH);
			//报文加密
			var bmd5:String = msg.substring(Const.HEADERLENGTH+Const.BODYLENGTH,Const.HEADERLENGTH+Const.BODYLENGTH+Const.BODYMD5);
			//报文
			var b:String = msg.substring(Const.TOTAL,msg.length);
			//补齐
			var blank:String = msg.substring(Const.HEADERLENGTH+Const.BODYLENGTH+Const.BODYMD5,Const.TOTAL);
			//来源
			var source:String = msg.substring(Const.HEADERLENGTH+Const.BODYLENGTH+Const.BODYMD5+Const.BODYTYPE,Const.HEADERLENGTH+Const.BODYLENGTH+Const.BODYMD5+Const.BODYTYPE+Const.BODYTYPE);
			//类型
			var type:String = msg.substring(Const.HEADERLENGTH+Const.BODYLENGTH+Const.BODYMD5,Const.HEADERLENGTH+Const.BODYLENGTH+Const.BODYMD5+Const.BODYTYPE);
//			Alert.show(h);
//			Alert.show(b);
//			Alert.show(JSON.decode(b)['ROOT'][Const.HOSTRETCODE]);
//			Alert.show(bmd5);
//			Alert.show(blank);
			var header:Header = new Header(h);
			var body:Body = new Body(bl,bmd5,type,source,blank,b);
			
			var _msg:Message = new Message(header,body);
//			Alert.show(_msg.body.hostRetCode);
			return _msg;
		}

	}
}